using ERP.Domain.Products;
using Product.API.ISerivces.DTOS;

namespace Product.API.ISerivces.ProductProcess
{
    /// <summary>
    /// 产品工艺服务接口
    /// </summary>
    public interface IProductProcessSerivce
    {
        /// <summary>
        /// 产品工艺添加
        /// </summary>
        /// <param name="productProcess">产品工艺信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> CreateProductProcess(ERP.Domain.Products.ProductProcess productProcess);

        /// <summary>
        /// 产品工艺修改
        /// </summary>
        /// <param name="productProcess">产品工艺信息</param>
        /// <returns>返回受影响行数</returns>
        Task<int> UpdateProductProcess(ERP.Domain.Products.ProductProcess productProcess);

        /// <summary>
        /// 产品工艺删除（逻辑）
        /// </summary>
        /// <param name="Id">主键</param>
        /// <returns>返回受影响行数</returns>
        Task<int> DeleteProductProcess(int Id);

        /// <summary>
        /// 产品工艺批量添加
        /// </summary>
        /// <param name="entity">产品集合</param>
        /// <param name="productRouteNumber">工艺编号</param>
        /// <returns>返回受影响行数</returns>
        Task<int> BatchProductProcess(List<BatchProductProcessDTO> entity,Guid productRouteNumber);

        /// <summary>
        /// 产品工艺批量修改
        /// </summary>
        /// <param name="entity">产品工艺集合</param>
        /// <param name="processRouteNumber">工艺流程编号</param>
        /// <returns>返回受影响行数</returns>
        Task<int> BatchUpdateProductProcess(List<BatchUpdateProductProcessDTO> entity, Guid processRouteNumber);
    }
}


